﻿#ifndef EXECSQL_H
#define EXECSQL_H

#include "globalvars.h"

class ExecSQL
{
public:
    //////////////////////////////////////////UserInfo///////////////////////////////////////////////
    static void searchAllUserInfos();
    static void searchUserInfoForID(const QString &value);
    static void searchUserInfoForName(const QString &value);
    static void searchUserInfoForSex(const QString &value);
    static void searchUserInfoForCertState(const QString &value);
    static void searchUserInfoForRealName(const QString &value);
    static void searchUserInfoForEmail(const QString &value);
    static void searchUserInfoForPhone(const QString &value);
    static void searchAllUserInfosForRole(const QString &role);

    static void searchUserInfoForIDAndRole(const QString &value, const QString &role);
    static void searchUserInfoForNameAndRole(const QString &value, const QString &role);
    static void searchUserInfoForSexAndRole(const QString &value, const QString &role);
    static void searchUserInfoForRealNameAndRole(const QString &value, const QString &role);
    static void searchUserInfoForEmailAndRole(const QString &value, const QString &role);
    static void searchUserInfoForPhoneAndRole(const QString &value, const QString &role);

    static bool modifyUserInfoForPswd(const QString &id, const QString &value);
    static bool modifyUserInfoForCertPath(const QString &id, const QString &value);
    static bool modifyUserInfoForName(const QString &id, const QString &value);
    static bool modifyUserInfoForRole(const QString &id, const QString &value);
    static bool modifyUserInfoForSex(const QString &id, const QString &value);
    static bool modifyUserInfoForCertState(const QString &id, const QString &value);
    static bool modifyUserInfoForRealName(const QString &id, const QString &value);
    static bool modifyUserInfoForBirthday(const QString &id, const QString &value);
    static bool modifyUserInfoForPhone(const QString &id, const QString &value);
    static bool modifyUserInfoForEmail(const QString &id, const QString &value);
    static bool modifyUserInfoForHeadPic(const QString &id, const QString &value);

    static bool deleteUserInfo(const QString &id);
    static bool addNewUserInfo(const UserInfo &info);
    static void updateUserInfoList(const QString &sql);

    ///////////////////////////////////////////////HotelInfo///////////////////////////////////////////////
    static void searchAllHotelInfos();
    static void searchHotelInfoForMoreCondition(const QVector<QVector<QString> > &doubleArray);
    static void searchHotelInfoForNumber(const QString &value);
    static void searchHotelInfoForName(const QString &value);
    static void searchHotelInfoForCity(const QString &value);
    static void searchHotelInfoForLocation(const QString &value);
    static void searchHotelInfoForType(const QString &value);
    static void searchHotelInfoForStar(const QString &value);
    static void searchHotelInfoForGreaterMark(const QString &value);
    static void searchHotelInfoForLesserMark(const QString &value);
    static void searchHotelInfoForCommentCount(const QString &value);
    static void searchHotelInfoForUser(const QString &value);
    static void searchHotelInfoForPhone(const QString &value);
    static void searchHotelInfoForState(const QString &value);
    static void searchHotelInfoForLowPrice(const QString &value1, const QString &value2);

    static bool modifyHotelInfoForName(const QString &id, const QString &value);
    static bool modifyHotelInfoForCity(const QString &id, const QString &value);
    static bool modifyHotelInfoForUser(const QString &id, const QString &value);
    static bool modifyHotelInfoForPhone(const QString &id, const QString &value);
    static bool modifyHotelInfoForLocation(const QString &id, const QString &value);
    static bool modifyHotelInfoForType(const QString &id, const QString &value);
    static bool modifyHotelInfoForStar(const QString &id, const QString &value);

    static bool modifyHotelInfoForCount(const QString &id, const QString &value);
    static bool modifyHotelInfoForLowPrice(const QString &id, const QString &value);
    static bool modifyHotelInfoForHighPrice(const QString &id, const QString &value);
    static bool modifyHotelInfoForOpenedTime(const QString &id, const QString &value);
    static bool modifyHotelInfoForDecoratedTime(const QString &id, const QString &value);
    static bool modifyHotelInfoForCancel(const QString &id, const QString &value);
    static bool modifyHotelInfoForServer(const QString &id, const QString &value);
    static bool modifyHotelInfoForIntroduce(const QString &id, const QString &value);
    static bool modifyHotelInfoForDescription(const QString &id, const QString &value);

    static bool modifyHotelInfoForState(const QString &id, const QString &value);
    static bool modifyHotelInfoForMark(const QString &id, const QString &value);
    static bool modifyHotelInfoForCommentCount(const QString &id, const QString &value);
    static bool modifyHotelInfoForPhoto(const QString &id, const QString &value);
    static bool modifyHotelInfoForLicense(const QString &id, const QString &value);

    static bool deleteHotelInfo(const QString &id);
    static bool addNewHotelInfo(const HotelInfo &info);
    static void updateHotelInfoList(const QString &sql);

    ///////////////////////////////////////////////HouseInfo///////////////////////////////////////////////
    static void searchAllHouseInfos();
    static void searchHouseInfosForHotel(const QString &value);
    static void searchHouseInfosForID(const QString &value);

    static bool modifyHouseInfoForPhoto(const QString &id, const QString &value);
    static bool modifyHouseInfoForType(const QString &id, const QString &value);
    static bool modifyHouseInfoForPrice(const QString &id, const QString &value);
    static bool modifyHouseInfoForCount(const QString &id, const QString &value);
    static bool modifyHouseInfoForArea(const QString &id, const QString &value);
    static bool modifyHouseInfoForCapacity(const QString &id, const QString &value);
    static bool modifyHouseInfoForBedType(const QString &id, const QString &value);
    static bool modifyHouseInfoForBathroom(const QString &id, const QString &value);
    static bool modifyHouseInfoForWindow(const QString &id, const QString &value);
    static bool modifyHouseInfoForNet(const QString &id, const QString &value);
    static bool modifyHouseInfoForBreakfast(const QString &id, const QString &value);
    static bool modifyHouseInfoForMedia(const QString &id, const QString &value);
    static bool modifyHouseInfoForBathroomAcc(const QString &id, const QString &value);
    static bool modifyHouseInfoForIsFull(const QString &id, const QString &value);

    static void updateHouseInfoList(const QString &sql);
    static bool deleteHouseInfo(const QString &value);
    static bool addNewHouseInfo(const HouseInfo &info);

    ///////////////////////////////////////////////ReserveInfo///////////////////////////////////////////////
    static void searchAllReserveInfos();
    static void searchReserveInfosForHotel(const QString &value);
    static void searchReserveInfosForUser(const QString &value);
    static void searchReserveInfosForID(const QString &value);
    static void updateReserveInfoList(const QString &sql);

    static bool modifyReserveInfoForCommentState(const QString &id, const QString &value);
    static bool modifyReserveInfoForState(const QString &id, const QString &value);

    static bool deleteReserveInfo(const QString &value);
    static bool addNewReserveInfo(const ReserveInfo &info);

    ///////////////////////////////////////////////CommentInfo///////////////////////////////////////////////
    static void searchAllCommentInfos();
    static void searchCommentInfosForID(const QString &value);
    static void searchCommentInfosForHotel(const QString &value);
    static void searchCommentInfosForUser(const QString &value);
    static void searchCommentInfosForUserAndHotel(const QString &user, const QString &hotel);
    static void updateCommentInfoList(const QString &sql);

    static bool modifyCommentInfoForHotelComment(const QString &id, const QString &value);
    static bool modifyCommentInfoForPhoto(const QString &id, const QString &value);

    static bool deleteCommentInfo(const QString &value);
    static bool addNewCommentInfo(const CommentInfo &info);

    ///////////////////////////////////////////////SaveInfo///////////////////////////////////////////////
    static void searchAllSaveInfos();
    static void searchSaveInfosForUser(const QString &value);
    static void searchSaveInfosForUserAndHotel(const QString &userID, const QString &hotelID);
    static void searchSaveInfosForID(const QString &value);
    static void updateSaveInfoList(const QString &sql);

    static bool deleteSaveInfo(const QString &value);
    static bool addNewSaveInfo(const SaveInfo &info);
};

#endif // EXECSQL_H
